import java.sql.SQLOutput;

/**
 * @author 余鹏龙
 * @version 1.0
 */
//逻辑控制
//本节目标
//1.Java中成勋的逻辑控制语句
//2.Java中的输入和输出方式
//3.完成猜数字游戏

//我的曾经
//早上8点起床->洗漱->上课->吃午饭->上课->运动->吃晚饭->玩手机->睡觉
//每天的生活貌似都是这么规律，顺序的做着每件事，前途一片渺茫~~
//直到有一天
//我幡然醒悟，不好好学习可能要卖红薯（何况家里还没有红薯地），于是我奋发图强，从此
//早上6点起床->看书敲代码->上课+看编程书籍->吃午饭->刷题->上课+看书->吃晚饭->总结->看哔哩哔哩->睡觉

public class Test {

    public static void main(String[] args) {
        //switch虽然支持嵌套，但是很丑所以一般我们是不推荐这样子写的
        String h = "ajflslka";
        String g = "jfldsa";
        switch(h) {
            case "fajf":
                System.out.println("满足情况1");
                break;
            case "flff":
                switch(g) {
                    case "fjlksj":
                        System.out.println("满足情况2中的情况1");
                        break;
                    case "fjdklsl":
                        System.out.println("满足情况2中的情况2");
                        break;
                    default:
                        System.out.println("不满足情况2中的任何情况");
                        break;
                }
                break;
            case "fdjslj":
                System.out.println("满足情况3");
                break;
            default:
                System.out.println("判断的数值有误");
                break;
        }
        //代码的美观程度也是一个重要的标准，毕竟这是一个看脸的世界
        //正如一句话说得好  看脸的世界，脸小了怕你看不清
        //其中if else更擅长于应对复杂的条件
        //例如  如果num的值在10到20之间，就打印hehe
        //这样的代码使用if很容易表达，但是使用switch就无法表示
        int num =15;
        if(num > 10 && num < 20) {
            System.out.println("hehe");
        }
    }

    public static void main8(String[] args) {
        //面试考题
        //不能做Switch的参数的数据类型是什么？
        //long double float boolean类型是不可以的
        char f = 'f';
        switch(f) {
            //多个case后的常量值不可以重复
            case 2:
                System.out.println("2");
                break;
            case 1:
                System.out.println("1");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
        /*boolean f0 = false;
        switch(f0) {
            case true:
                System.out.println(f0 + "为true");
                break;
            case false:
                System.out.println(f0 + "为false");
                break;
            default:
                System.out.println("输入有误");
                break;
        }*/    //error  所以Boolean也不可以作为switch的参数的数据类型
        /*Boolean g = true;
        System.out.println("g =" + g);
        boolean g0 = true;
        System.out.println("g0 =" + g0);*/
        //基本类型 byte、char、short、int
        //引用类型 String常量串、枚举类型
        //这几种均可以作为switch参数的数据类型
        String m = "abcdefg";
        switch(m) {
            case "affsaf":
                System.out.println("与情况1相同");
                break;
            case "fsdlafj":
                System.out.println("与情况2相同");
                break;
            default:
                System.out.println("与情况不符");
                break;

        }

    }

    public static void main7(String[] args) {
        //switch语句
        //和c语言的用法一样
        //好的编程习惯
        //每一个情况必须带上break，循环中要有default
        int a = 10;
        switch(a) {
            case 2:
                System.out.println("2");
                break;
            case 1:
                System.out.println("1");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
    }

    public static void main6(String[] args) {
        //判断是否是闰年的最终版本
        //能被400整除的数，一定可被100整除
        int year =2020;
        if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
            System.out.println(year + "是闰年");
        }else {
            System.out.println(year + "不是闰年");
        }
    }

    public static void main5(String[] args) {
        //闰年判断改写版本1.0
        int year = 2021;
        if(year % 100 == 0 && year % 400 == 0 || (year % 100 != 100 && year % 4 == 0)) {
        //知识点回忆
        //逻辑运算符  两边的表达式都必须是Boolean表达式
        //1. && 并且  逻辑与
        //1.1 两个都为真，整体才为真
        //1.2 第一个为假，第二个就不会执行
        //2. || 或   逻辑或
        //2.1 一个为真，整体就为真
        //2.2 第一个为真，第二个就不会执行
            System.out.println(year + "是闰年");
        }else {
            System.out.println(year + "不是闰年");
        }
    }

    public static void main4(String[] args) {
        //判断一个年份是否为闰年
        //普通闰年
        //公历年份是4的倍数，且不是100的倍数的，为闰年（比如2004年、2020年等就是闰年）
        //世纪闰年
        //公历年份是整百数的，必须是400的倍数才是闰年（如1900年不是闰年，2000年是闰年）
        int year = 2000;
        if(year % 100 == 0) {
            //判断世纪闰年
            if(year % 400 == 0) {
                System.out.println(year + "是闰年");
            }
        }else {
            if(year % 400 == 0) {
                System.out.println(year + "不是闰年");
            }
        }
    }

    public static void main3(String[] args) {
        //判断一个数字是正数，负数，还是零
        int a = 10;
        if(a > 0) {
            System.out.println("a是正数");
        }else if(a < 0) {
            System.out.println("a是负数");
        }else {
            System.out.println("a是零");
        }
    }

    //见字如见人，你写的代码好看，也可以让人眼前一亮
    //1.花括号左边要留一个空格
    //2.运算符两边都应该留空格
    public static void main2(String[] args) {
        //判断一个数是奇数还是偶数
        int a = 10;
        if(a % 2 != 0) {
        //黄色的背景，代表这个语句是一个警告
        //ide有个有趣的地方
        //实际开发中Boolean语句的变量应为变量，是一个不固定的值
        //我们这边给了一个固定的值，所以爆黄
            System.out.println("a是奇数");
        }else {
            System.out.println("a是偶数");
        }
    }

    public static void main1(String[] args) {
        //顺序结构，按照书写顺序执行
        System.out.println("aaa");
        System.out.println("bbb");
        System.out.println("ccc");
        //分支结构
        //if语句,语法特别的简单，但有一个细节需要记住（if后括号里是布尔表达式，也就是说里面只能是true和false）
        int a = 10;
        if(a == 10) {
            System.out.println("a = 10");
        }
        //if else
        int b = 10;
        if(b == 10) {
            System.out.println("b = 10");
        }else {
            System.out.println("b != 10");
        }

        int c = 10;
        if(c < 0) {
            System.out.println("c < 0");
        }else if(c > 20 ) {
            System.out.println("c > 20");
        }else {
            System.out.println("c在0~20之间");
        }
    }
}
